iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
AI & Data

紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度系列 第 6

DAY 6 「 邏輯回歸(Logistic Regression)」鳶尾花實作~

  • 分享至 

  • xImage
  •  

邏輯迴歸是分類還是迴歸演算法呢?

/images/emoticon/emoticon02.gif白話來說包含“迴歸”,但實際上它是一個分類算法,而不是回歸算法~對特徵的線性關係也就是二元分類問題敏感分得不錯~~~

  • 分類問題:邏輯迴歸主要用於處理二元分類問題,即將數據劃分為兩個類別,分類問題:邏輯迴歸主要用於處理二元分類問題,即將數據劃分為兩個類別,
    假設:邏輯迴歸基於一個假設,即數據可以用一個 S 形曲線(稱為 logistic 函數或 sigmoid 函數)來描述
    工作流程:

  • 特徵選擇:選擇對於分類任務來說是重要的特徵。

  • 訓練模型:將選擇的特徵和標籤用於訓練邏輯回歸模型。

  • 計算概率:使用 sigmoid 函數計算每個樣本屬於正類的概率。

  • 決策邊界:根據設定的閾值(通常是 0.5)將概率轉換為分類預測。

  • 損失函數和參數更新:
    在訓練過程中,我們通過最小化損失函數來調整模型參數。對於邏輯回歸,通常使用的損失函數是對數損失(Log Loss)。

  • 優點:
    簡單而有效,特別適合作為基線模型。
    能夠提供樣本屬於特定類別的概率。

  • 注意事項:
    邏輯回歸是一個線性分類器,只能處理線性可分的問題。如果數據不是線性可分的,可能需要進行特徵工程或者考慮其他非線性模型。

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report

# 載入鳶尾花數據集
iris = load_iris()
X = iris.data
y = iris.target

# 將數據集劃分為訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化邏輯回歸模型
logistic_reg = LogisticRegression()

# 在訓練集上訓練模型
logistic_reg.fit(X_train, y_train)

# 在測試集上進行預測
y_pred = logistic_reg.predict(X_test)

# 評估模型
accuracy = accuracy_score(y_test, y_pred)
report = classification_report(y_test, y_pred)

# 打印結果
print(f'準確度:{accuracy}')
print(f'分類報告:\n{report}')

上一篇
DAY 5 「PCA & SVD」當特徵太多要怎麼辦?
下一篇
DAY 7 「 K-means聚類演算法」手寫數字數據集(如 MNIST 數據集)案例實作~
系列文
紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言